[UPDATE] AWS Media ServicesでWorkflow monitorが利用可能になりました!
はじめに
清水です。AWS Media Servicesでライブ配信ワークフローの検出、視覚化、そして監視に利用できる Workflow monitor がリリースされました!What’s New at AWSへ2024/04/11付けで掲載されているほか、同日付けでAWS for M&E Blogでも紹介されています。
- Introducing workflow monitor for AWS Media Services
- Discover, visualize, and monitor your live video workflows on AWS | AWS for M&E Blog
AWSでライブ配信ワークフローを構築する場合、例えばAWS Elemental MediaLiveやAWS Elemental MediaPackage、そしてAmazon CloudFrontといったように複数のAWSサービスを利用します。これまでMediaLive Workflow wizardというようなかたちでリソースの作成を容易にする手段が提供されてきました。今回リリースされたになった Workflow monitor は、AWSのどんなサービスを利用しているか(検知/Discover)、どのように連携しているか(視覚化/Visualize)、そして正常に動作しているか(監視/Monitor)を容易に確認するためのツールとなります。
現時点でWorkflow monitorでサポート対象となっているリソースは以下5つです。ライブオリジンとしても利用できるようになったAmazon S3が入り、代わりにAWS Elemental MediaStoreが含まれていないなど、現実の利用に即したサービス選定ではないでしょうか。ただし、リリースの時点ではMediaPackageのサポートはv1のみ、MediaPackage v2は現時点でサポート外のようです。
- AWS Elemental MediaLive
- AWS Elemental MediaPackage
- AWS Elemental MediaConnect
- Amazon S3
- Amazon CloudFront
Workflow monitorの紹介や機能、メリットなどの解説については先述のAWS for M&E Blogのブログエントリや公式ドキュメントを確認いただくとして、本エントリではこのWorkflow monitorをひとまず動作させてみて、どんなことができるのかを確認してみたのでまとめてみたいと思います。
Workflow monitorを使ってみた!
それでは実際にWorkflow monitorを使いながら、ライブビデオワークフローに対してどのようにDiscover、Visualize、そしてMonitorができるのか確認していきます。
マネジメントコンソールでWorkflow monitorを確認
まずはマネジメントコンソールでWorkflow monitorの画面を確認してみましょう。AWS Elemental MediaLiveのマネジメントコンソールに進み左側メニューを確認すると Workflow monitor の項目が増えていますね!
いざ!リンクをクリックしてWorkflow monitorのページに進んでみましょう。MediaLiveのページからの遷移ではありますが、別サービスのようなページのつくりです。各リソースについてもMediaLiveのものとは別となっていますね。(とはいえ、APIなどはMediaLive内のまとめられています。例えばaws medialive get-signal-map
コマンドなどですね。ドキュメントはMediaLiveのものが案内されていますが、MediaPackageやMediaConnectにもページが存在しています。おそらく内容は同じもののようです。)
このWelcomeページですがWorkflow monitorのメリットや特徴、そして関連サービスや料金などがまとまっていますので、一読しておきましょう。
モニタリング対象のライブビデオワークフローの準備
実際にWorkflow monitorを使ってみる前に、モニタリング対象となるライブ配信ワークフローを構築します。こちらはWorkflow wizardで作成しました。(Workflow wizardとWorkflow monitor、似ていますが混同しないように注意しましょう。)
作成手順の詳細などについては以下エントリを参照ください。本ブログエントリではWorkflow wizard最後のReview and create resourcesならびにWorkflow作成後の画面のみ掲載します。
Video outputsとしてMediaPackageを選択、CloudFrontディストリビューションも作成しています。
Workflow monitor用CloudWatch alarm template groupの作成
モニタリング対象のワークフローが準備できたら、いよいよWorkflow monitor用のリソースの準備に入ります。メインとなるSignal mapの前に、まずはCloudWatch alarm template gropusというリソースを作成しておきます。
Workflow monitorでモニタリングの単位となるSignal mapではCloudWatch alarmならびにEventBridge ruleを関連付けることができます。この関連付けるCloudWatch alarmsはAlarm templatesと呼ばれ、このTemplateを複数のSignal mapに関連付けることが可能です。それぞれのリソースごとにAlarmを作成することなく、テンプレートとしたAlarmを使用できるイメージですね。このテンプレートをまとめたものCloudWatch alarm template groupです。なお本ブログエントリではEventBridge連携については確認していませんが、CloudWatch alarmと同じようにEventBridge ruleに対するTemplate groupが作成、関連付けるイメージです。
またこのCloudWatch alarm templateについては、その内容を自身で作成するほか、AWSが準備したAlarm templateを使用することも可能です。今回はこの、AWS側で準備したAlarm templateを利用して確認してみました。
マネジメントコンソールのWorkflow monitorのページ、左側のメニューからTemplate groups > CloudWatch alarmsと進み、[Create alarm template group]ボタンを押下します。Basic detailsでGroup NameとDescriptionを適切に入力して[Create]で作成します。
Template groupが作成できました。ここに実際のAlarm templateを追加していきます。AWS準備のAlarm templateを使用する場合は、Alarm templatesの項目の[Import]ボタンを押下します。
Import alarm templatesの画面になります。select alarm template groupのCloudWatch alarm template groupsの項目をクリックしてみましょう。
AWS recommended groupsが表示されます。
この中からまずはAWS-MediaLiveUdpAndRtmpWorkflows
を選択してみました。ただし以下2つについては、今回の検証内容で常にAlart状態であったので除外します。
- AWS-InputTimecodesPresentLow-MediaLiveUdpAndRtmpWorkflows
- AWS-PipelinesLockedLow-MediaLiveUdpAndRtmpWorkflows
Select alarms template(s)の[Add]ボタンを押下します。
Alarm template(s) to importの項目に追加されました。
同様の手順でAWS-MediaLiveToMediaPackageWorkflows
についても追加します。こちらも以下2つは今回の検証内容で常にAlart状態であったので除外します。
- AWS-PipelinesLockedLow-MediaLiveToMediaPackageWorkflows
- AWS-InputTimecodesPresentLow-MediaLiveToMediaPackageWorkflows
さらにAWS-CloudFrontGeneralWorkflows
を追加して、画面最下部の[Import]ボタンを押下します。
CloudWatch alarm templateのImportが完了しました。合計18個のAlarm templatesがまとまる Alarm Template groupリソースができましたね。これら18個のAlarmをそれぞれのリソースごと作成して……、と考えるとなかなか骨の折れる作業となると思います。このモニタリング設定があらかじめ準備されているという点は大きいのではないでしょうか。
なおこの画面のAlarm templateのそれぞれの文字列をクリックするとAlarm templateの詳細が確認できます。
Workflow monitorのSignal mapの作成
続いてWorkflow monitorのSignal mapリソースを準備します。このSignal mapがWorkflow monitorの主となるリソースです。Workflow monitorのページ、左側のメニューからSignal mapsを選択して[Create signal map]を押下します。NameとDescriptionを適切に入力したらDiscover new signal mapの欄を確認しましょう。ここにはMediaPackage channel、MediaConnect Flow、MediaLive channelといったリソースが表示されます。(なお、MediaPackageについてはv1のみの表示のようです。)リソースがたくさんある場合はSearchで検索しましょう。そこからリソースを1つ選択して、[Create]ボタンを押下します。今回は先ほど作成したWorkflowのMediaLive channelリソースを選択しました。
Signal mapが作成できました!
Signal mapとCloudWatch alarm template groupsの関連付け
Signal mapが作成できたら、続いてCloudWatch alarm template groupをこのSignal mapに関連付けます。画面右側の[Attach CloudWatch alarm template groups]ボタンを押下します。
Attach CloudWatch alarm template groupsの画面に遷移しますので、先ほど作成したCloudWatch alarm template groupを選択して[Add]します。
画面下部の「Attached CloudWatch alarm template groups」の欄にtemplate groupが表示されたら[Save]します。
以上でSignal mapとCloudWatch alarm template groupsの関連付けは完了です。このほか、EventBridge rule template groupsの関連付けも行えますが、本ブログエントリではEventBridge ruleは設定しないのでここでは省略します。
MonitorのDeploy
Signal mapとTemplate groupsの関連付けができたら、続いてMonitorのDeployを行います。このDeployを行うことで、裏でCloudFormation Stackが作成され、Monitor用のCloudWatch alarmsならびにEventBridge rulesのリソースが作成されるわけです。
右上のActionsからDeploy monitorを実行しましょう。
作成されるリソースの確認画面が現れます。内容を確認して[Deploy]します。
Deploy後、CloudFormationのStacks一覧でDeployの進捗やどのようなリソースがDeployされているのか確認ができます。
Signal mapsの一覧画面でDEPLOYMENT_COMPLETE
、詳細画面でMonitor in syncの表示になれば準備完了です。[Monitor signal map]ボタンでモニタリング画面に進みましょう。
Workflow monitorでのモニタリングのようす
実際にWorkflow(Workflow wizardのほうですね)をStartしてStreaming Softwareから映像を打ち上げます。ライブストリームを視聴しつつ、Signal mapを確認してみましょう。左側のSignal mapの項目では関連リソース名とあわせて実際の映像が確認できます!下のスクリーンショットのSignal mapでは左側がMediaLive(サムネイル表示)、右側はMediaPackageのそれぞれ(CMAF、HLS、DASH)のEndpointからのライブストリームの視聴画面です。
Signal mapは拡大、縮小ができます。以下はMediaLive部分を拡大した状態ですね。
画面左側ではCloudWatch alarmsのほか、AWS Elemental alertsとして今回はMediaLiveのアラートが確認できました。またMetricsタブでは各リソースのメトリクスのグラフ、LogsではCloudWatch Logsの内容と、これまではそれぞれのマネジメントコンソール画面で確認する必要があった項目が、この1ページでまとめて監視できるようになっています。すごい!!
アラートが発生した場合についても確認してみましょう。MediaLiveのChannelはrunningのまま、Streaming Softwareからの映像の打ち上げを中断してみました。Signal mapのMediaLive Channelの部分が赤くなりアラート状態であることが視覚的に確認できますね!
Signal map内で該当のリソースをクリックして、右上のActionメニューからView selected resource detailsを選択することで、各リソースの詳細画面に遷移してアラートの詳細を確認することも可能です。
まとめ
AWS Media Servicesで新たに利用可能になったWorkflow monitorについて、実際に動作させながらどのようなことができるのかを確認してみました。Signal mapを作成して対象のAWS Media Servicesリソースのひとつを選択するだけで、どのような構成かかが検知され、さらに視覚的に表示されモニタリングできます。監視に必要な項目はあらかじめTemplate gropuとしてまとめておき、各Signal mapやリソースごとに準備するという必要がなくなります。また1つの画面で各リソースの監視内容を把握可能です。"Discover, visualize, and monitor your live video workflows."の通り、非常に便利でパワフルなモニタリングツールがAWS Media Servicesで利用できるようになりました。今回は確認できなかったEventBridge rules連携などについても、追って確認していきたいと思います。